package com.zerdoor.dao;

import java.util.List;
import java.util.Map;

/**
 * Created by xiaoji on 2014/11/3.
 */
public interface TaskDetailDao {

    /**
     * FunName:           getTaskDetailByTaskId
     * Description :      根据任务ID差看任务详情
     * @return String：   任务信息
     * @Author:       xiaoji
     * @Create Date: 2014-11-3
     */
    public Map<String, Object> getTaskDetailByTaskId(Integer taskId);

    /**
     * 根据需求技能ID集查询需求技能名称
     * @param skillIds
     * @return
     */
    List<String> findSkillNameBySkillIds(String skillIds);

    /**
     * FunName:           getBusBidinfo
     * Description :      获取任务ID获取竞标信息
     * @return String：   竞标信息
     * @Author:       xiaoji
     * @Create Date: 2014-11-3
     */
    public List<Map<String, Object>> getBusBidinfo(Integer taskId);

    /**
     * FunName:           getProcesses
     * Description :      获取所有任务进程
     * @return String：   进程信息
     * @Author:       xiaoji
     * @Create Date: 2014-11-3
     */
    public List<Map<String, Object>> getProcesses();

    /**
     * FunName:           getUserBidinfoByTaskId
     * Description :      查询用户是否竞标
     * @return String：   返回竞标条数
     * @Author:       xiaoji
     * @Create Date: 2014-11-3
     */
    public Integer getUserBidinfoByTaskId(Map<String, Object> map);

    /**
     * 设置中标
     * @param id 投标编号
     */
    public void updateWinItem(int id) throws Exception;

    /**
     * 根据任务ID和用户编号查询任务
     * @param map 任务ID；用户编号
     * @return 返回任务数
     */
    public Map<String, Object> getTotalItemByItemIdAndUserId(Map<String,Object> map);

    /**
     * 该任务是否有人中标
     * @param itemId 任务编号
     * @return
     */
    public Map<String, Object> getWinTotalByItemId(int itemId);

    /**
     * 改变任务进度状态为选定艺术家
     * @param itemId 任务编号
     */
    public void updateItemProgress(int itemId);

    /**
     * 中标时创建合同模板
     * @param map 合同甲方乙方及电话号码；总额，计件任务数量
     */
    public void addItemContract(Map<String, Object> map) throws Exception;

    /**
     * 根据用户id查询委托放编号和手机号码
     * @param userId 当前用户编号
     * @return 委托方编号和委托方手机号码
     */
    public Map<String, Object> getBaileInfoByUserId(int userId);

    /**
     * 根据投稿ID查询投稿方的编号和手机号码
     * @param id 投稿艺术家投稿编号
     * @return 投稿艺术家编号和投稿艺术家手机号码
     */
    public Map<String, Object> getArtistInfoById(int id);

    /**
     * 根据竞赛活动编号查询竞赛活动总价和题目
     * @param itemId 项目编号
     * @return 项目名称和项目预算金额
     */
    public Map<String, Object> getItemInfoByItemId(int itemId);

    /**
     * 查询单个竞标信息
     * @param id 竞标编号
     * @return
     */
    public Map<String, Object> getBidInfoById(int id);


}
